package vule.color;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import vule.random.Rnd;


public class ColorsUtil {

	private static Set<LocalizedColor> usedColors = new HashSet<LocalizedColor>();
	
	public static LocalizedColor getNextColor() {
		return LocalizedColor.COLORS.get(Rnd.next(LocalizedColor.COLORS.size()));
	}
	
	public static LocalizedColor getNextAvailableColor() {
		List<LocalizedColor> availableColors = getAvailableColors();
		LocalizedColor availableColor = availableColors.get(Rnd.next(availableColors.size()));
		usedColors.add(availableColor);
		return availableColor;
	}
	
	
	private static List<LocalizedColor> getAvailableColors() {
		List<LocalizedColor> availableColors = new ArrayList<LocalizedColor>();
		for (LocalizedColor localizedColor : LocalizedColor.COLORS){
			if (!usedColors.contains(localizedColor)) {
				availableColors.add(localizedColor);
			}
		}
		return availableColors;
	}
	
	public static void clearUsedColors() {
		usedColors.clear();
	}
}
